<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class historial_costom extends CI_Model {

    public function __construct() {
        $this->load->database();
    }

    public function nuevoCostoP($establecimiento, $idCosto, $fecha, $hora, $minuto, $valor, $descripcion, $modoPago, $usuarioEncargado) {
        $query = "INSERT INTO historial_costo(id_establecimiento, fecha, id_costo, valor, descripcion, modo_pago, usuario_encargado) VALUES('$establecimiento','$fecha $hora:$minuto:00','{$idCosto}','{$valor}','{$descripcion}','{$modoPago}', '{$usuarioEncargado}' )";
        $this->db->query($query);
    }

    public function query($query) {
        // echo $query;
        return $this->db->query($query)->result();
    }

    public function getCostoById($idCosto, $idEstablecimiento) {
        $query = "select * from historial_costo where id_historial_costo='$idCosto' and id_establecimiento='$idEstablecimiento'";
        return $this->db->query($query)->result();
    }

    public function deleteHistorialC($establecimiento, $id_HC) {
        $query = "DELETE from historial_costo where id_historial_costo='$id_HC' AND id_establecimiento='$establecimiento'";
        $this->db->query($query);
    }

    public function contarCostos($idEstablecimiento, $criterios) {
        $query = "Select count(*) cantidad
                    from historial_costo hc
                    where 
                    hc.id_establecimiento='$idEstablecimiento' ";
        $query.=(!empty($criterios['desde'])) ? " AND hc.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND hc.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        $query.=(!empty($criterios['estatus'])) ? " AND hc.estatus='{$criterios['estatus']}'" : " ";
        $query.=(!empty($criterios['modo_pago'])) ? " AND hc.modo_pago='{$criterios['modo_pago']}'" : " ";
        return $this->db->query($query)->result();
    }

    public function obtenerCostosTotales($idEstablecimiento, $filasPorPagina, $inicio, $criterios) {
        $query = "Select hc.*,u.nombre_completo
                    from historial_costo hc, usuario u
                    where 
                    hc.usuario_encargado=u.id_usuario and
                    hc.id_establecimiento='$idEstablecimiento' ";
        $query.=(!empty($criterios['desde'])) ? " AND hc.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND hc.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        $query.=(!empty($criterios['estatus'])) ? " AND hc.estatus='{$criterios['estatus']}'" : " ";
        $query.=(!empty($criterios['modo_pago'])) ? " AND hc.modo_pago='{$criterios['modo_pago']}'" : " ";
        $query.=" order by hc.fecha DESC LIMIT $inicio,$filasPorPagina";
        return $this->db->query($query)->result();
    }

    public function obtenerResumenCostosTotales($idEstablecimiento, $criterios) {
        $query = "Select  COALESCE(sum(hc.valor),0) total
                    from historial_costo hc
                    where 
                    hc.id_establecimiento='$idEstablecimiento' ";
        $query.=(!empty($criterios['desde'])) ? " AND hc.fecha >= '{$criterios['desde']} 00:00:00'" : " ";
        $query.=(!empty($criterios['hasta'])) ? " AND hc.fecha <= '{$criterios['hasta']} 23:59:59'" : " ";
        $query.=(!empty($criterios['estatus'])) ? " AND hc.estatus='{$criterios['estatus']}'" : " ";
        $query.=(!empty($criterios['modo_pago'])) ? " AND hc.modo_pago='{$criterios['modo_pago']}'" : " ";
        return $this->db->query($query)->result();
    }
    public function getCostosByDia($dia, $idEstablecimiento) {
        $query = "select hc.*,u.nombre_completo from historial_costo hc,usuario u
                  where hc.id_establecimiento='$idEstablecimiento'
                  and u.id_usuario=hc.usuario_encargado and
                  hc.fecha >= '$dia 00:00:00' and
                  hc.fecha <= '$dia 23:59:59' order by hc.fecha";
        return $this->db->query($query)->result();
    }
}